package edu.erpan.bl.entities.administracion;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import edu.erpan.util.entityManager.DefaultEntity;


/**
 * The persistent class for the personas database table.
 * 
 */
@Entity
@Table(name="personas")
public class Persona extends DefaultEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	private int idpersona;

	//uni-directional many-to-one association to Genero
    @ManyToOne
	@JoinColumn(name="generos_idgenero", nullable=false)
	private Genero genero;

	@ManyToOne
	@JoinColumn(name="id_tipo_identificacion", nullable=false)
	private TipoIdentificacion tipoIdentificacion;

	@Column(nullable=false, length=45)
	private String nombres;

	@Column(name="numero_identificacion", nullable=false, length=15)
	private String numeroIdentificacion;

	@Column(name="primer_apellido", nullable=false, length=45)
	private String primerApellido;

	@Column(name="segundo_apellido", length=45)
	private String segundoApellido;
	
	@Column(nullable=false)
	private boolean activo;
	
	@Column(name="correo_electronico", length=60)
	private String correoElectronico;

    public Persona() {
    }

	public int getIdpersona() {
		return this.idpersona;
	}

	public void setIdpersona(int idpersona) {
		this.idpersona = idpersona;
	}

	

	public String getNombres() {
		return this.nombres;
	}

	public void setNombres(String nombres) {
		this.nombres = nombres;
	}

	public String getNumeroIdentificacion() {
		return this.numeroIdentificacion;
	}

	public void setNumeroIdentificacion(String numeroIdentificacion) {
		this.numeroIdentificacion = numeroIdentificacion;
	}

	public String getPrimerApellido() {
		return this.primerApellido;
	}

	public void setPrimerApellido(String primerApellido) {
		this.primerApellido = primerApellido;
	}

	public String getSegundoApellido() {
		return this.segundoApellido;
	}

	public void setSegundoApellido(String segundoApellido) {
		this.segundoApellido = segundoApellido;
	}

	/**
	 * @return the activo
	 *
	 * @author Jeison
	 * @date 19/09/2012
	 */
	public boolean isActivo() {
		return activo;
	}

	/**
	 * @param activo the activo to set
	 * 
	 * @author Jeison
	 * @date 19/09/2012
	 */
	public void setActivo(boolean activo) {
		this.activo = activo;
	}

	/**
	 * @return the correoElectronico
	 *
	 * @author Jeison
	 * @date 20/02/2013
	 */
	public String getCorreoElectronico() {
		return correoElectronico;
	}

	/**
	 * @param correoElectronico the correoElectronico to set
	 * 
	 * @author Jeison
	 * @date 20/02/2013
	 */
	public void setCorreoElectronico(String correoElectronico) {
		this.correoElectronico = correoElectronico;
	}

	/**
	 * @return the tipoIdentificacion
	 *
	 * @author Jeison
	 * @date 26/02/2013
	 */
	public TipoIdentificacion getTipoIdentificacion() {
		return tipoIdentificacion;
	}

	/**
	 * @param tipoIdentificacion the tipoIdentificacion to set
	 * 
	 * @author Jeison
	 * @date 26/02/2013
	 */
	public void setTipoIdentificacion(TipoIdentificacion tipoIdentificacion) {
		this.tipoIdentificacion = tipoIdentificacion;
	}

	/**
	 * @return the genero
	 *
	 * @author Jeison
	 * @date 5/03/2013
	 */
	public Genero getGenero() {
		return genero;
	}

	/**
	 * @param genero the genero to set
	 * 
	 * @author Jeison
	 * @date 5/03/2013
	 */
	public void setGenero(Genero genero) {
		this.genero = genero;
	}
	
}